#ifndef __NETWORK_H__
#define __NETWORK_H__
#include "Utils.h"

typedef enum{
    listen_type,
    connect_type,
}SocketType;

// Train结构是私有成员，被隐藏
// typedef struct Train_s{
//     int legnth;
//     char *data[1020];
// }Train;

//建立连接或者创建一个监听套接字， 返回该连接的描述符
int TcpInit(const char *IP, const char *port, SocketType type, int *socket_fd);

//接收连接
int Accept(const int listen_fd, int *net_fd);

//向对应连接发送数据(发送一次)
int SendTrain(const int net_fd, const char *buf);

//接收对应连接的数据(读取一次)
int RecvTrain(const int net_fd, char *buf);

int EpollAdd(int epoll_fd, int fd, uint32_t events);

int EpollDel(int epoll_fd, int fd);

int recvn(int sock_fd, void *buf, long total);
#endif  //__NETWORK_H__